﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BusinessRules;
using AjaxControlToolkit;
using System.IO;
using System.Configuration;
using System.Threading;

public partial class Formulario : System.Web.UI.Page
{


    #region Propiedades
    //public string CertificadoFileUpload
    //{
    //    get { return (ViewState["CertificadoFileUpload"] == null ? string.Empty : ViewState["CertificadoFileUpload"].ToString()); }
    //    set { ViewState["CertificadoFileUpload"] = value; }
    //} 
    private string _CertificadoFileUpload;

    public string CertificadoFileUpload
    {
        get { return _CertificadoFileUpload; }
        set { _CertificadoFileUpload = value; }
    }
    #endregion

    #region Page_Load
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            LimpiarCampos("");
            cardarDepartamentos();
            EstadoCamposFormulario(false);
        }
        //else

        //ScriptManager.RegisterClientScriptBlock(this.Page,this.Page.GetType(),"whatever1","recaptcha.reload();",true);
    }
    #endregion

    #region cardarDepartamentos
    private void cardarDepartamentos()
    {
        BusinessRules.DataClassesZonasDataContext contexto = new DataClassesZonasDataContext();
        var datos = from a in contexto.BAS_ZONAS_GEOGRAFICAs
                    where object.Equals(a.ZON_PADRE_ID, null)
                    select a;
        if (datos == null) return;
        ddlDapartamento.DataSource = datos;
        ddlDapartamento.DataTextField = "ZON_NOMBRE";
        ddlDapartamento.DataValueField = "ZON_ID";
        ddlDapartamento.DataBind();
        ddlDapartamento.Items.Insert(0, new ListItem("--Seleccione--", "0"));


        ddlTetroDapartamento1.DataSource = datos;
        ddlTetroDapartamento1.DataTextField = "ZON_NOMBRE";
        ddlTetroDapartamento1.DataValueField = "ZON_ID";
        ddlTetroDapartamento1.DataBind();
        ddlTetroDapartamento1.Items.Insert(0, new ListItem("--Seleccione--", "0"));

        ddlTetroDapartamento2.DataSource = datos;
        ddlTetroDapartamento2.DataTextField = "ZON_NOMBRE";
        ddlTetroDapartamento2.DataValueField = "ZON_ID";
        ddlTetroDapartamento2.DataBind();
        ddlTetroDapartamento2.Items.Insert(0, new ListItem("--Seleccione--", "0"));


        ddlTetroDapartamento3.DataSource = datos;
        ddlTetroDapartamento3.DataTextField = "ZON_NOMBRE";
        ddlTetroDapartamento3.DataValueField = "ZON_ID";
        ddlTetroDapartamento3.DataBind();
        ddlTetroDapartamento3.Items.Insert(0, new ListItem("--Seleccione--", "0"));
    }
    #endregion

    #region btnGuardar_Click
    protected void btnGuardar_Click(object sender, EventArgs e)
    {


        //Thread.Sleep(2000);
        //salvar los archivos y el nombre del archivo en la tabla

        //if (HyperLinkCertificado.Text != "" && HyperLinkCertificadoRepa.Text != "" && HyperLinkCertificadoRut.Text != "")
        //{
            this.recaptcha.Validate();
            if (!this.recaptcha.IsValid)
            {
                litMensajeCaptcha.Text = string.Format(@"<span style=""color:red;"">{0}</span>", "Los caracteres no coinciden por favor intente nuevamente");
                return;
            }
            else
            {
                litMensajeCaptcha.Text = "";

                this.RegistrarEntidad();
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "err_msg1", "alert('La información se guardó exitosamente, para finalizar el proceso haga clic en el botón (Enviar al Ministerio) ');", true);

                //StringBuilder sb = new StringBuilder();
                //sb.Append("<script language='javascript'>");
                //sb.Append("alert('La información se guardó exitosamente');");
                //sb.Append("</script>");
                //ClientScript.RegisterStartupScript(this.GetType(), "test2", sb.ToString());
            }
        //}
        //else
          //  ScriptManager.RegisterStartupScript(Page, Page.GetType(), "err_msg1", "alert('Los documentos adjuntos son obligatorios por favor cargar los archivos gracias.');", true);



        
    }
    #endregion

    #region ConsultaRegistroEntidadPorDocumento

    private bool ConsultaRegistroEntidadPorDocumento(string strDocuemnto)
    {
        bool boolExiste = false;
        DataClassesArtEntidadesArtesDataContext
            contexto = new DataClassesArtEntidadesArtesDataContext();
        //var datos = (from a in contexto.ART_ENTIDADES_ARTEs
        //             join b in contexto.ART_ENTIDAD_UBICACIONs on a.ENT_ID equals b.ENT_ID
        //             join c in contexto.ART_ENTIDADES_TEATROs on a.ENT_ID equals c.ENT_ID

        var datos = (from a in contexto.ART_ENTIDADES_ARTEs
                     join b in contexto.ART_ENTIDAD_UBICACIONs on a.ENT_ID equals b.ENT_ID


                     where (a.ENT_NIT == strDocuemnto)
                     select new
                                {
                                    a.ENT_ID,
                                    a.ENT_NOMBRE,
                                    a.ENT_NOMBRE_REPRESENTANTE_LEGAL,
                                    a.ENT_FECHA_DILIGENCIAMIENTO,
                                    a.DOC_ID_ENTIDAD,
                                    a.ENT_NIT,
                                    a.ENT_RUT,
                                    a.ATP_ID,
                                    a.ENT_ACTIVIDAD_PRINCIPAL_PRODUCTOR,
                                    a.ENT_NUM_DOCUMENTO_REPRESENTANTE,
                                    a.DOC_ID_REPRESENTANTE,
                                    a.ENT_OTROS_GENEROS,
                                    a.ENT_ESTADO,
                                    b.ENT_DIRECCION,
                                    b.ZON_ID,
                                    b.ENT_TELEFONO,
                                    b.ENT_CORREO_ELECTRONICO_ENTIDAD,
                                    b.ENT_PAGINA_WEB
                                });

        foreach (var v in datos)
        {
            if (v.ENT_ESTADO == 'M')
            {
                EstadoCamposFormulario(true);
                #region CONSULTA DATOS

                txtRazonSocial.Text = v.ENT_NOMBRE;
                txtNombresApellidosRepresentanteLegal.Text = v.ENT_NOMBRE_REPRESENTANTE_LEGAL;
                txtDireccion.Text = v.ENT_DIRECCION;
                txtFechaRegistro.Text = v.ENT_FECHA_DILIGENCIAMIENTO.ToString();
                if( !String.IsNullOrEmpty(v.DOC_ID_ENTIDAD.ToString()))
                    if (v.DOC_ID_ENTIDAD.ToString() == "2" && v.DOC_ID_ENTIDAD.ToString() == "4" && v.DOC_ID_ENTIDAD.ToString() == "6")
                rblTipoIdentificacionEntidad.SelectedValue = v.DOC_ID_ENTIDAD.ToString();
                txtNumeroIdentificacion.Text = v.ENT_NIT;
                txtRut.Text = v.ENT_RUT;
                if (!String.IsNullOrEmpty(v.ATP_ID.ToString()))
                rblTipoProductor.SelectedValue = v.ATP_ID.ToString();
                txtOtrosGeneros.Text = v.ENT_OTROS_GENEROS;
                txtActividadPrincipalProductor.Text = v.ENT_ACTIVIDAD_PRINCIPAL_PRODUCTOR;
                //REPRESENTANTE LEGAL
                txtNombresApellidosRepresentanteLegal.Text = v.ENT_NOMBRE_REPRESENTANTE_LEGAL;
                txtNumeroIdentificacionRepresentanteLegal.Text = v.ENT_NUM_DOCUMENTO_REPRESENTANTE;
                rblTipoIdentificacionRepresentanteLegal.SelectedValue = v.DOC_ID_REPRESENTANTE.ToString();
                //////////////////////////////////
                //      ART_ENTIDAD_UBICACION   //
                //////////////////////////////////
                txtDireccion.Text = v.ENT_DIRECCION;
                if (!String.IsNullOrEmpty(v.ZON_ID))
                {

                    string strDep = v.ZON_ID.Substring(0, 2);

                    ddlDapartamento.SelectedValue = strDep;
                    DataClassesZonasDataContext contextoZonas = new DataClassesZonasDataContext();
                    var datosZonas = from a in contextoZonas.BAS_ZONAS_GEOGRAFICAs
                                     where object.Equals(a.ZON_PADRE_ID, strDep)
                                     select a;
                    if (datosZonas != null)
                    {
                        ddlMunicipio.DataSource = datosZonas;
                        ddlMunicipio.DataTextField = "ZON_NOMBRE";
                        ddlMunicipio.DataValueField = "ZON_ID";
                        ddlMunicipio.DataBind();
                        ddlMunicipio.SelectedValue = v.ZON_ID;
                    }
                }
                txtTelefono.Text = v.ENT_TELEFONO;
                txtCorreoElectronico.Text = v.ENT_CORREO_ELECTRONICO_ENTIDAD;
                txtPaginaWeb.Text = v.ENT_PAGINA_WEB;

                //objArtEntidadUbicacion.ZOP_ID = 52;
                //objArtEntidadUbicacion.ARE_ID = 4;
                //objArtEntidadUbicacion.ENT_SINO_TELEFONO = 'S';
                //objArtEntidadUbicacion.ENT_SINO_FAX = 'S';
                //objArtEntidadUbicacion.ENT_SINO_CORREO_ELECTRONICO_ENTIDAD = 'S';


                //if (ddlTeatroMunicipio1.SelectedValue != "")
                //    objArtEntidadesTeatro.ZON_ID = ddlTeatroMunicipio1.SelectedValue;

                #region   ART_ENTIDADES_ARTES_ART_GENEROS_ARTISTICOS

                var datosGenerosArtisticos = (from d in contexto.ART_ENTIDADES_ARTES_ART_GENEROS_ARTISTICOs
                                              //join b in contexto.ART_ENTIDAD_UBICACIONs on a.ENT_ID equals b.ENT_ID
                                              //join c in contexto.ART_ENTIDADES_TEATROs on a.ENT_ID equals c.ENT_ID
                                              where d.ENT_ID == v.ENT_ID
                                              select d
                                             );

                foreach (var dato in datosGenerosArtisticos)
                {
                    foreach (ListItem obj in cblGeneros.Items)
                    {
                        ART_ENTIDADES_ARTES_ART_GENEROS_ARTISTICO objArtEntidadesArtesGeneroArtistico =
                            new ART_ENTIDADES_ARTES_ART_GENEROS_ARTISTICO();
                        if (obj.Value == dato.AGA_ID.ToString())
                            obj.Selected = true;

                    }

                }

                #endregion

                #region   ART_ENTIDADES_TEATROs 1

                var datosEntidadesTeatros1 = (from c in contexto.ART_ENTIDADES_TEATROs
                                              //join b in contexto.ART_ENTIDAD_UBICACIONs on a.ENT_ID equals b.ENT_ID
                                              //join c in contexto.ART_ENTIDADES_TEATROs on a.ENT_ID equals c.ENT_ID
                                              where c.ENT_ID == v.ENT_ID && c.ATT_ID == 1
                                              select c
                                             );

                foreach (var dato in datosEntidadesTeatros1)
                {

                    txtTeatroNombre1.Text = dato.AET_NOMBRE;
                    txtTeatroAforo1.Text = dato.AET_AFORO.ToString();
                    txtTeatroDireccion1.Text = dato.AET_DIRECCION;
                    if (!String.IsNullOrEmpty(dato.ZON_ID))
                    {

                        string strDepTeatro = dato.ZON_ID.Substring(0, 2);

                        ddlTetroDapartamento1.SelectedValue = strDepTeatro;
                        DataClassesZonasDataContext contextoZonas = new DataClassesZonasDataContext();
                        var datosZonas = from a in contextoZonas.BAS_ZONAS_GEOGRAFICAs
                                         where object.Equals(a.ZON_PADRE_ID, strDepTeatro)
                                         select a;
                        if (datosZonas != null)
                        {
                            ddlTeatroMunicipio1.DataSource = datosZonas;
                            ddlTeatroMunicipio1.DataTextField = "ZON_NOMBRE";
                            ddlTeatroMunicipio1.DataValueField = "ZON_ID";
                            ddlTeatroMunicipio1.DataBind();
                            ddlTeatroMunicipio1.SelectedValue = dato.ZON_ID;
                        }
                    }

                }

                #endregion

                #region   ART_ENTIDADES_TEATROs 2

                var datosEntidadesTeatros2 = (from c in contexto.ART_ENTIDADES_TEATROs
                                              //join b in contexto.ART_ENTIDAD_UBICACIONs on a.ENT_ID equals b.ENT_ID
                                              //join c in contexto.ART_ENTIDADES_TEATROs on a.ENT_ID equals c.ENT_ID
                                              where c.ENT_ID == v.ENT_ID && c.ATT_ID == 2
                                              select c
                                             );

                foreach (var dato in datosEntidadesTeatros2)
                {

                    txtTeatroNombre2.Text = dato.AET_NOMBRE;
                    txtTeatroAforo2.Text = dato.AET_AFORO.ToString();
                    txtTeatroDireccion2.Text = dato.AET_DIRECCION;
                    if (!String.IsNullOrEmpty(dato.ZON_ID))
                    {

                        string strDepTeatro = dato.ZON_ID.Substring(0, 2);

                        ddlTetroDapartamento2.SelectedValue = strDepTeatro;
                        DataClassesZonasDataContext contextoZonas = new DataClassesZonasDataContext();
                        var datosZonas = from a in contextoZonas.BAS_ZONAS_GEOGRAFICAs
                                         where object.Equals(a.ZON_PADRE_ID, strDepTeatro)
                                         select a;
                        if (datosZonas != null)
                        {
                            ddlTeatroMunicipio2.DataSource = datosZonas;
                            ddlTeatroMunicipio2.DataTextField = "ZON_NOMBRE";
                            ddlTeatroMunicipio2.DataValueField = "ZON_ID";
                            ddlTeatroMunicipio2.DataBind();
                            ddlTeatroMunicipio2.SelectedValue = dato.ZON_ID;
                        }
                    }

                }

                #endregion

                #region   ART_ENTIDADES_TEATROs 3

                var datosEntidadesTeatros3 = (from c in contexto.ART_ENTIDADES_TEATROs
                                              //join b in contexto.ART_ENTIDAD_UBICACIONs on a.ENT_ID equals b.ENT_ID
                                              //join c in contexto.ART_ENTIDADES_TEATROs on a.ENT_ID equals c.ENT_ID
                                              where c.ENT_ID == v.ENT_ID && c.ATT_ID == 3
                                              select c
                                             );

                foreach (var dato in datosEntidadesTeatros3)
                {

                    txtTeatroNombre3.Text = dato.AET_NOMBRE;
                    txtTeatroAforo3.Text = dato.AET_AFORO.ToString();
                    txtTeatroDireccion3.Text = dato.AET_DIRECCION;
                    if (!String.IsNullOrEmpty(dato.ZON_ID))
                    {

                        string strDepTeatro = dato.ZON_ID.Substring(0, 2);

                        ddlTetroDapartamento3.SelectedValue = strDepTeatro;
                        DataClassesZonasDataContext contextoZonas = new DataClassesZonasDataContext();
                        var datosZonas = from a in contextoZonas.BAS_ZONAS_GEOGRAFICAs
                                         where object.Equals(a.ZON_PADRE_ID, strDepTeatro)
                                         select a;
                        if (datosZonas != null)
                        {
                            ddlTeatroMunicipio3.DataSource = datosZonas;
                            ddlTeatroMunicipio3.DataTextField = "ZON_NOMBRE";
                            ddlTeatroMunicipio3.DataValueField = "ZON_ID";
                            ddlTeatroMunicipio3.DataBind();
                            ddlTeatroMunicipio3.SelectedValue = dato.ZON_ID;
                        }
                    }

                }

                #endregion

                #region   ART_ENTIDADES_ARCHIVOs 1

                var datosEntidadesArchivos1 = (from c in contexto.ART_ENTIDADES_ARCHIVOs
                                               //join b in contexto.ART_ENTIDAD_UBICACIONs on a.ENT_ID equals b.ENT_ID
                                               //join c in contexto.ART_ENTIDADES_TEATROs on a.ENT_ID equals c.ENT_ID
                                               where c.ENT_ID == v.ENT_ID && c.ATA_ID == 1
                                               select c
                                             );

                foreach (var dato in datosEntidadesArchivos1)
                {

                    HyperLinkCertificado.Text = dato.AEA_NOMBRE;
                    HyperLinkCertificado.NavigateUrl = ConfigurationManager.AppSettings["UrlArchivos"] + dato.AEA_NOMBRE;
                }

                #endregion

                #region   ART_ENTIDADES_ARCHIVOs 2

                var datosEntidadesArchivos2 = (from c in contexto.ART_ENTIDADES_ARCHIVOs
                                               //join b in contexto.ART_ENTIDAD_UBICACIONs on a.ENT_ID equals b.ENT_ID
                                               //join c in contexto.ART_ENTIDADES_TEATROs on a.ENT_ID equals c.ENT_ID
                                               where c.ENT_ID == v.ENT_ID && c.ATA_ID == 2
                                               select c
                                             );

                foreach (var dato in datosEntidadesArchivos2)
                {

                    HyperLinkCertificadoRut.Text = dato.AEA_NOMBRE;
                    HyperLinkCertificadoRut.NavigateUrl = ConfigurationManager.AppSettings["UrlArchivos"] + dato.AEA_NOMBRE;
                }

                #endregion

                #region   ART_ENTIDADES_ARCHIVOs 3

                var datosEntidadesArchivos3 = (from c in contexto.ART_ENTIDADES_ARCHIVOs
                                               //join b in contexto.ART_ENTIDAD_UBICACIONs on a.ENT_ID equals b.ENT_ID
                                               //join c in contexto.ART_ENTIDADES_TEATROs on a.ENT_ID equals c.ENT_ID
                                               where c.ENT_ID == v.ENT_ID && c.ATA_ID == 3
                                               select c
                                             );

                foreach (var dato in datosEntidadesArchivos3)
                {

                    HyperLinkCertificadoRepa.Text = dato.AEA_NOMBRE;
                    HyperLinkCertificadoRepa.NavigateUrl = ConfigurationManager.AppSettings["UrlArchivos"] + dato.AEA_NOMBRE;
                }

                #endregion

                #endregion
                //Habilita los campos para actualizar
                btnGuardar.Visible = false;
                btnActualizar.Visible = true;
                btnEnviar.Visible = true;
            }
            else
            {
                //no habilita campos y desactiva los botones
                LimpiarCampos("");
                btnGuardar.Visible = false;
                btnActualizar.Visible = false;
                btnEnviar.Visible = false;
                EstadoCamposFormulario(false);
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "err_msg1", "alert('El número de identificación solicitado ya se encuentra registrado, para modificar la información relacionada con este número de identificación por favor solicitarlo directamente al Ministerio de Cultura');", true);

                //StringBuilder sb = new StringBuilder();
                //sb.Append("<script language='javascript'>");
                //sb.Append("alert('El número de identificación solicitado ya se encuentra registrado, para modificar la información relacionada con este número de identificación por favor solicitarlo directamente al Ministerio de Cultura');");
                //sb.Append("</script>");
                //ClientScript.RegisterStartupScript(this.GetType(), "test2", sb.ToString());
            }

            boolExiste = true;

        }
        //Si no existe limpia campos y habilita  para guardar informacion 

        if (!boolExiste)
        {
            EstadoCamposFormulario(true);
            LimpiarCampos("");
            btnGuardar.Visible = true;
            btnActualizar.Visible = false;
            //btnEnviar.Visible = true;
            lblMensajeContinuar.Text =
                "Por favor llene los campos del formulario, al finalizar haga clic en el botón guardar y finalmente clic en el botón enviar para finalizar el registro gracias.";
        }
        return boolExiste;

    }

    #endregion

    #region btnConsultaDocuemnto_Click
    protected void btnConsultaDocuemnto_Click(object sender, EventArgs e)
    {
        
        ConsultaRegistroEntidadPorDocumento(txtNumeroIdentificacion.Text);
        //ScriptManager.RegisterStartupScript(Page, Page.GetType(), "CaptchaReload", "Recaptcha.reload();", true);

        //ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "whatever1", "Recaptcha.reload();", true);
        //UpdatePanel1.Update();


    }
    #endregion

    #region ddlDapartamento_SelectedIndexChanged
    protected void ddlDapartamento_SelectedIndexChanged(object sender, EventArgs e)
    {

        if (ddlDapartamento.SelectedValue == "") return;
        if (ddlDapartamento.SelectedValue == "0")
        {
            ddlMunicipio.Items.Clear();
            return;
        }
        DataClassesZonasDataContext contexto = new DataClassesZonasDataContext();
        var datos = from a in contexto.BAS_ZONAS_GEOGRAFICAs
                    where object.Equals(a.ZON_PADRE_ID, ddlDapartamento.SelectedValue)
                    select a;
        if (datos == null) return;
        ddlMunicipio.DataSource = datos;
        ddlMunicipio.DataTextField = "ZON_NOMBRE";
        ddlMunicipio.DataValueField = "ZON_ID";
        ddlMunicipio.DataBind();
    }
    #endregion

    #region ddlTetroDapartamento1_SelectedIndexChanged
    protected void ddlTetroDapartamento1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (ddlTetroDapartamento1.SelectedValue == "") return;
        if (ddlTetroDapartamento1.SelectedValue == "0")
        {
            ddlTeatroMunicipio1.Items.Clear();
            return;
        }
        DataClassesZonasDataContext contexto = new DataClassesZonasDataContext();
        var datos = from a in contexto.BAS_ZONAS_GEOGRAFICAs
                    where object.Equals(a.ZON_PADRE_ID, ddlTetroDapartamento1.SelectedValue)
                    select a;
        if (datos == null) return;
        ddlTeatroMunicipio1.DataSource = datos;
        ddlTeatroMunicipio1.DataTextField = "ZON_NOMBRE";
        ddlTeatroMunicipio1.DataValueField = "ZON_ID";
        ddlTeatroMunicipio1.DataBind();

    }
    #endregion

    #region RegistrarEntidad
    private void RegistrarEntidad()
    {
        try
        {

            BusinessRules.DataClassesArtEntidadesArtesDataContext contexto = new BusinessRules.DataClassesArtEntidadesArtesDataContext();
            BusinessRules.ART_ENTIDADES_ARTE objArtEntidadesArtes = new BusinessRules.ART_ENTIDADES_ARTE();
            BusinessRules.ART_ENTIDAD_UBICACION objArtEntidadUbicacion = new BusinessRules.ART_ENTIDAD_UBICACION();
            BusinessRules.ART_ENTIDADES_TEATRO objArtEntidadesTeatro1 = new BusinessRules.ART_ENTIDADES_TEATRO();
            BusinessRules.ART_ENTIDADES_TEATRO objArtEntidadesTeatro2 = new BusinessRules.ART_ENTIDADES_TEATRO();
            BusinessRules.ART_ENTIDADES_TEATRO objArtEntidadesTeatro3 = new BusinessRules.ART_ENTIDADES_TEATRO();
            BusinessRules.ART_ENTIDADES_ARCHIVO objArtEntidadesArchivos1 = new BusinessRules.ART_ENTIDADES_ARCHIVO();
            BusinessRules.ART_ENTIDADES_ARCHIVO objArtEntidadesArchivos2 = new BusinessRules.ART_ENTIDADES_ARCHIVO();
            BusinessRules.ART_ENTIDADES_ARCHIVO objArtEntidadesArchivos3 = new BusinessRules.ART_ENTIDADES_ARCHIVO();

            //////////////////////////////////
            //      ART_ENTIDADES_ARTES     //
            //////////////////////////////////

            //campos obligatorios para la base de datos
            objArtEntidadesArtes.ENT_NOMBRE = txtRazonSocial.Text;
            objArtEntidadesArtes.ENT_FECHA_DILIGENCIAMIENTO = DateTime.Now;
            objArtEntidadesArtes.DOC_ID_ENTIDAD = Convert.ToDecimal(rblTipoIdentificacionEntidad.SelectedValue);
            objArtEntidadesArtes.ENT_NIT = txtNumeroIdentificacion.Text;
            objArtEntidadesArtes.ENT_RUT = txtRut.Text;
            objArtEntidadesArtes.ATP_ID = Convert.ToDecimal(rblTipoProductor.SelectedValue);
            objArtEntidadesArtes.ENT_ACTIVIDAD_PRINCIPAL_PRODUCTOR = txtActividadPrincipalProductor.Text;
            objArtEntidadesArtes.ENT_OTROS_GENEROS = txtOtrosGeneros.Text;

            //REPRESENTANTE LEGAL
            objArtEntidadesArtes.ENT_NOMBRE_REPRESENTANTE_LEGAL = txtNombresApellidosRepresentanteLegal.Text;
            objArtEntidadesArtes.ENT_NUM_DOCUMENTO_REPRESENTANTE = txtNumeroIdentificacionRepresentanteLegal.Text;
            objArtEntidadesArtes.DOC_ID_REPRESENTANTE = Convert.ToDecimal(rblTipoIdentificacionRepresentanteLegal.SelectedValue);

            objArtEntidadesArtes.ENT_ESTADO = 'M';

            contexto.ART_ENTIDADES_ARTEs.InsertOnSubmit(objArtEntidadesArtes);
            contexto.SubmitChanges();
            decimal retorno = objArtEntidadesArtes.ENT_ID;

            //////////////////////////////////
            //      ART_ENTIDAD_UBICACION   //
            //////////////////////////////////
            objArtEntidadUbicacion.ENT_ID = retorno;
            objArtEntidadUbicacion.ENT_DIRECCION = txtDireccion.Text;

            if (ddlMunicipio.SelectedValue != "")
                objArtEntidadUbicacion.ZON_ID = ddlMunicipio.SelectedValue;
            objArtEntidadUbicacion.ENT_TELEFONO = txtTelefono.Text;
            objArtEntidadUbicacion.ENT_CORREO_ELECTRONICO_ENTIDAD = txtCorreoElectronico.Text;
            objArtEntidadUbicacion.ENT_PAGINA_WEB = txtPaginaWeb.Text;

            // valores obligatorios quemados por defecto
            objArtEntidadUbicacion.ZOP_ID = 52;
            objArtEntidadUbicacion.ARE_ID = 4;
            objArtEntidadUbicacion.ENT_SINO_TELEFONO = 'S';
            objArtEntidadUbicacion.ENT_SINO_FAX = 'S';
            objArtEntidadUbicacion.ENT_SINO_CORREO_ELECTRONICO_ENTIDAD = 'S';

            contexto.ART_ENTIDAD_UBICACIONs.InsertOnSubmit(objArtEntidadUbicacion);
            contexto.SubmitChanges();


            //////////////////////////////////
            //      ART_ENTIDADES_TEATRO 1    //
            //////////////////////////////////
            objArtEntidadesTeatro1.ENT_ID = retorno;
            objArtEntidadesTeatro1.AET_NOMBRE = txtTeatroNombre1.Text;
            if (txtTeatroAforo1.Text != "")
                objArtEntidadesTeatro1.AET_AFORO = Convert.ToDecimal(txtTeatroAforo1.Text);
            if (ddlTeatroMunicipio1.SelectedValue != "")
                objArtEntidadesTeatro1.ZON_ID = ddlTeatroMunicipio1.SelectedValue;
            objArtEntidadesTeatro1.AET_DIRECCION = txtTeatroDireccion1.Text;
            objArtEntidadesTeatro1.ATT_ID = 1;
            contexto.ART_ENTIDADES_TEATROs.InsertOnSubmit(objArtEntidadesTeatro1);
            contexto.SubmitChanges();

            //////////////////////////////////
            //      ART_ENTIDADES_TEATRO 2   //
            //////////////////////////////////
            objArtEntidadesTeatro2.ENT_ID = retorno;
            objArtEntidadesTeatro2.AET_NOMBRE = txtTeatroNombre2.Text;
            if (txtTeatroAforo2.Text != "")
                objArtEntidadesTeatro2.AET_AFORO = Convert.ToDecimal(txtTeatroAforo2.Text);
            if (ddlTeatroMunicipio2.SelectedValue != "")
                objArtEntidadesTeatro2.ZON_ID = ddlTeatroMunicipio2.SelectedValue;
            objArtEntidadesTeatro2.AET_DIRECCION = txtTeatroDireccion2.Text;
            objArtEntidadesTeatro2.ATT_ID = 2;
            contexto.ART_ENTIDADES_TEATROs.InsertOnSubmit(objArtEntidadesTeatro2);
            contexto.SubmitChanges();

            //////////////////////////////////
            //      ART_ENTIDADES_TEATRO  3  //
            //////////////////////////////////
            objArtEntidadesTeatro3.ENT_ID = retorno;
            objArtEntidadesTeatro3.AET_NOMBRE = txtTeatroNombre3.Text;
            if (txtTeatroAforo3.Text != "")
                objArtEntidadesTeatro3.AET_AFORO = Convert.ToDecimal(txtTeatroAforo3.Text);
            if (ddlTeatroMunicipio3.SelectedValue != "")
                objArtEntidadesTeatro3.ZON_ID = ddlTeatroMunicipio3.SelectedValue;
            objArtEntidadesTeatro3.AET_DIRECCION = txtTeatroDireccion3.Text;
            objArtEntidadesTeatro3.ATT_ID = 3;
            contexto.ART_ENTIDADES_TEATROs.InsertOnSubmit(objArtEntidadesTeatro3);
            contexto.SubmitChanges();

            ////////////////////////////////////////////////////////////////////
            //      ART_ENTIDADES_ARTES_ART_GENEROS_ARTISTICOS                 //
            ////////////////////////////////////////////////////////////////////

            foreach (ListItem obj in cblGeneros.Items)
            {
                BusinessRules.ART_ENTIDADES_ARTES_ART_GENEROS_ARTISTICO datosGenerosArtisticos = new BusinessRules.ART_ENTIDADES_ARTES_ART_GENEROS_ARTISTICO();
                if (obj.Selected)
                {
                    datosGenerosArtisticos.AGA_ID = Convert.ToDecimal(obj.Value);
                    datosGenerosArtisticos.ENT_ID = retorno;
                    contexto.ART_ENTIDADES_ARTES_ART_GENEROS_ARTISTICOs.InsertOnSubmit(datosGenerosArtisticos);
                }

            }

            ///////////////////////////////////
            //      ART_ENTIDADES ARCHIVOS1   //
            ///////////////////////////////////
            objArtEntidadesArchivos1.ENT_ID = retorno;
            if (!String.IsNullOrEmpty(Convert.ToString(Session["Archivo1"])))
                objArtEntidadesArchivos1.AEA_NOMBRE = Convert.ToString(Session["Archivo1"]).ToString();
            objArtEntidadesArchivos1.ATA_ID = 1;
            contexto.ART_ENTIDADES_ARCHIVOs.InsertOnSubmit(objArtEntidadesArchivos1);
            HyperLinkCertificado.Text = Convert.ToString(Session["Archivo1"]).ToString(); ;
            HyperLinkCertificado.NavigateUrl = ConfigurationManager.AppSettings["UrlArchivos"] + Convert.ToString(Session["Archivo1"]).ToString();

            ///////////////////////////////////
            //      ART_ENTIDADES ARCHIVOS2   //
            ///////////////////////////////////
            objArtEntidadesArchivos2.ENT_ID = retorno;
            if (!String.IsNullOrEmpty(Convert.ToString(Session["Archivo2"])))
                objArtEntidadesArchivos2.AEA_NOMBRE = Convert.ToString(Session["Archivo2"]).ToString();
            objArtEntidadesArchivos2.ATA_ID = 2;
            contexto.ART_ENTIDADES_ARCHIVOs.InsertOnSubmit(objArtEntidadesArchivos2);
            HyperLinkCertificadoRut.Text = Convert.ToString(Session["Archivo2"]).ToString(); ;
            HyperLinkCertificadoRut.NavigateUrl = ConfigurationManager.AppSettings["UrlArchivos"] + Convert.ToString(Session["Archivo2"]).ToString();

            ///////////////////////////////////
            //      ART_ENTIDADES ARCHIVOS3   //
            ///////////////////////////////////
            objArtEntidadesArchivos3.ENT_ID = retorno;
            if (!String.IsNullOrEmpty(Convert.ToString(Session["Archivo3"])))
                objArtEntidadesArchivos3.AEA_NOMBRE = Convert.ToString(Session["Archivo3"]).ToString();
            objArtEntidadesArchivos3.ATA_ID = 3;
            contexto.ART_ENTIDADES_ARCHIVOs.InsertOnSubmit(objArtEntidadesArchivos3);
            HyperLinkCertificadoRepa.Text = Convert.ToString(Session["Archivo3"]).ToString(); ;
            HyperLinkCertificadoRepa.NavigateUrl = ConfigurationManager.AppSettings["UrlArchivos"] + Convert.ToString(Session["Archivo3"]).ToString();


            contexto.SubmitChanges();
            btnGuardar.Visible = false;
            btnActualizar.Visible = true;
            btnEnviar.Visible = true;
        }
        catch (Exception ex)
        { throw ex; }
    }
    #endregion

    #region ActualizarEntidad

    private void ActualizarEntidad()
    {
        try
        {



            decimal decEntiId = 0;
            DataClassesArtEntidadesArtesDataContext
                contexto = new DataClassesArtEntidadesArtesDataContext();


            #region   ART_ENTIDADES_ARTES

            var datos = (from a in contexto.ART_ENTIDADES_ARTEs
                         //join b in contexto.ART_ENTIDAD_UBICACIONs on a.ENT_ID equals b.ENT_ID
                         //join c in contexto.ART_ENTIDADES_TEATROs on a.ENT_ID equals c.ENT_ID
                         where a.ENT_NIT == txtNumeroIdentificacion.Text
                         select a
                        );

            foreach (var v in datos)
            {
                //////////////////////////////////
                //      ART_ENTIDADES_ARTES     //
                //////////////////////////////////
                //campos obligatorios para la base de datos
                v.ENT_NOMBRE = txtRazonSocial.Text;
                v.ENT_FECHA_DILIGENCIAMIENTO = DateTime.Now;
                v.DOC_ID_ENTIDAD = Convert.ToDecimal(rblTipoIdentificacionEntidad.SelectedValue);
                v.ENT_NIT = txtNumeroIdentificacion.Text;
                v.ENT_RUT = txtRut.Text;
                v.ATP_ID = Convert.ToDecimal(rblTipoProductor.SelectedValue);
                v.ENT_ACTIVIDAD_PRINCIPAL_PRODUCTOR = txtActividadPrincipalProductor.Text;
                v.ENT_OTROS_GENEROS = txtOtrosGeneros.Text;
                //REPRESENTANTE LEGAL
                v.ENT_NOMBRE_REPRESENTANTE_LEGAL = txtNombresApellidosRepresentanteLegal.Text;
                v.ENT_NUM_DOCUMENTO_REPRESENTANTE = txtNumeroIdentificacionRepresentanteLegal.Text;
                v.DOC_ID_REPRESENTANTE = Convert.ToDecimal(rblTipoIdentificacionRepresentanteLegal.SelectedValue);
                decEntiId = v.ENT_ID;

            }

            #endregion


            #region ART_ENTIDAD_UBICACION

            var datosUbicacion = (from b in contexto.ART_ENTIDAD_UBICACIONs
                                  //join b in contexto.ART_ENTIDAD_UBICACIONs on a.ENT_ID equals b.ENT_ID
                                  //join c in contexto.ART_ENTIDADES_TEATROs on a.ENT_ID equals c.ENT_ID
                                  where b.ENT_ID == decEntiId
                                  select b
                                 );

            foreach (var v in datosUbicacion)
            {
                //////////////////////////////////
                //      ART_ENTIDAD_UBICACION   //
                //////////////////////////////////
                v.ENT_DIRECCION = txtDireccion.Text;
                if (ddlMunicipio.SelectedValue != "")
                    v.ZON_ID = ddlMunicipio.SelectedValue;
                v.ENT_TELEFONO = txtTelefono.Text;
                v.ENT_CORREO_ELECTRONICO_ENTIDAD = txtCorreoElectronico.Text;
                v.ENT_PAGINA_WEB = txtPaginaWeb.Text;
                // valores obligatorios quemados por defecto
                v.ZOP_ID = 52;
                v.ARE_ID = 4;
                v.ENT_SINO_TELEFONO = 'S';
                v.ENT_SINO_FAX = 'S';
                v.ENT_SINO_CORREO_ELECTRONICO_ENTIDAD = 'S';
            }

            #endregion


            #region ART_ENTIDADES_TEATRO 1

            var datosEntidadTearto1 = (from c in contexto.ART_ENTIDADES_TEATROs
                                       //join b in contexto.ART_ENTIDAD_UBICACIONs on a.ENT_ID equals b.ENT_ID
                                       //join c in contexto.ART_ENTIDADES_TEATROs on a.ENT_ID equals c.ENT_ID
                                       where c.ENT_ID == decEntiId && c.ATT_ID == 1
                                       select c
                                     );
            foreach (var v in datosEntidadTearto1)
            {
                //////////////////////////////////
                //      ART_ENTIDADES_TEATRO    //
                //////////////////////////////////
                v.AET_NOMBRE = txtTeatroNombre1.Text;
                if (txtTeatroAforo1.Text != "")
                    v.AET_AFORO = Convert.ToDecimal(txtTeatroAforo1.Text);
                if (ddlTeatroMunicipio1.SelectedValue != "")
                    v.ZON_ID = ddlTeatroMunicipio1.SelectedValue;
                v.AET_DIRECCION = txtTeatroDireccion1.Text;
            }

            #endregion

            #region ART_ENTIDADES_TEATRO 2

            var datosEntidadTearto2 = (from c in contexto.ART_ENTIDADES_TEATROs
                                       //join b in contexto.ART_ENTIDAD_UBICACIONs on a.ENT_ID equals b.ENT_ID
                                       //join c in contexto.ART_ENTIDADES_TEATROs on a.ENT_ID equals c.ENT_ID
                                       where c.ENT_ID == decEntiId && c.ATT_ID == 2
                                       select c
                                     );
            foreach (var v in datosEntidadTearto2)
            {
                //////////////////////////////////
                //      ART_ENTIDADES_TEATRO    //
                //////////////////////////////////
                v.AET_NOMBRE = txtTeatroNombre2.Text;
                if (txtTeatroAforo2.Text != "")
                    v.AET_AFORO = Convert.ToDecimal(txtTeatroAforo2.Text);
                if (ddlTeatroMunicipio2.SelectedValue != "")
                    v.ZON_ID = ddlTeatroMunicipio2.SelectedValue;
                v.AET_DIRECCION = txtTeatroDireccion2.Text;
            }

            #endregion

            #region ART_ENTIDADES_TEATRO 3

            var datosEntidadTearto3 = (from c in contexto.ART_ENTIDADES_TEATROs
                                       //join b in contexto.ART_ENTIDAD_UBICACIONs on a.ENT_ID equals b.ENT_ID
                                       //join c in contexto.ART_ENTIDADES_TEATROs on a.ENT_ID equals c.ENT_ID
                                       where c.ENT_ID == decEntiId && c.ATT_ID == 3
                                       select c
                                     );
            foreach (var v in datosEntidadTearto3)
            {
                //////////////////////////////////
                //      ART_ENTIDADES_TEATRO    //
                //////////////////////////////////
                v.AET_NOMBRE = txtTeatroNombre3.Text;
                if (txtTeatroAforo3.Text != "")
                    v.AET_AFORO = Convert.ToDecimal(txtTeatroAforo3.Text);
                if (ddlTeatroMunicipio3.SelectedValue != "")
                    v.ZON_ID = ddlTeatroMunicipio3.SelectedValue;
                v.AET_DIRECCION = txtTeatroDireccion3.Text;
            }

            #endregion

            #region ART_ENTIDADES_ARCHIVOs 1

            var datosEntidadArchivos1 = (from c in contexto.ART_ENTIDADES_ARCHIVOs
                                         //join b in contexto.ART_ENTIDAD_UBICACIONs on a.ENT_ID equals b.ENT_ID
                                         //join c in contexto.ART_ENTIDADES_TEATROs on a.ENT_ID equals c.ENT_ID
                                         where c.ENT_ID == decEntiId && c.ATA_ID == 1
                                         select c
                                     );
            foreach (var v in datosEntidadArchivos1)
            {
                //////////////////////////////////
                //      ART_ENTIDADES_TEATRO    //
                //////////////////////////////////
                if (!String.IsNullOrEmpty(HyperLinkCertificado.Text))
                    v.AEA_NOMBRE = HyperLinkCertificado.Text;
                if (!String.IsNullOrEmpty(Convert.ToString(Session["Archivo1"])))
                    v.AEA_NOMBRE = Convert.ToString(Session["Archivo1"]);
                HyperLinkCertificado.Text = v.AEA_NOMBRE;
                HyperLinkCertificado.NavigateUrl = ConfigurationManager.AppSettings["UrlArchivos"] + v.AEA_NOMBRE;
            }

            #endregion

            #region ART_ENTIDADES_ARCHIVOs 2

            var datosEntidadArchivos2 = (from c in contexto.ART_ENTIDADES_ARCHIVOs
                                         //join b in contexto.ART_ENTIDAD_UBICACIONs on a.ENT_ID equals b.ENT_ID
                                         //join c in contexto.ART_ENTIDADES_TEATROs on a.ENT_ID equals c.ENT_ID
                                         where c.ENT_ID == decEntiId && c.ATA_ID == 2
                                         select c
                                     );
            foreach (var v in datosEntidadArchivos2)
            {
                //////////////////////////////////
                //      ART_ENTIDADES_TEATRO    //
                //////////////////////////////////
                if (!String.IsNullOrEmpty(HyperLinkCertificadoRut.Text))
                    v.AEA_NOMBRE = HyperLinkCertificadoRut.Text;
                if (!String.IsNullOrEmpty(Convert.ToString(Session["Archivo2"])))
                    v.AEA_NOMBRE = Convert.ToString(Session["Archivo2"]);
                HyperLinkCertificadoRut.Text = v.AEA_NOMBRE;
                HyperLinkCertificadoRut.NavigateUrl = ConfigurationManager.AppSettings["UrlArchivos"] + v.AEA_NOMBRE;
            }

            #endregion

            #region ART_ENTIDADES_ARCHIVOs 3

            var datosEntidadArchivos3 = (from c in contexto.ART_ENTIDADES_ARCHIVOs
                                         //join b in contexto.ART_ENTIDAD_UBICACIONs on a.ENT_ID equals b.ENT_ID
                                         //join c in contexto.ART_ENTIDADES_TEATROs on a.ENT_ID equals c.ENT_ID
                                         where c.ENT_ID == decEntiId && c.ATA_ID == 3
                                         select c
                                     );
            foreach (var v in datosEntidadArchivos3)
            {
                //////////////////////////////////
                //      ART_ENTIDADES_TEATRO    //
                //////////////////////////////////
                if (!String.IsNullOrEmpty(HyperLinkCertificadoRepa.Text))
                    v.AEA_NOMBRE = HyperLinkCertificadoRepa.Text;
                if (!String.IsNullOrEmpty(Convert.ToString(Session["Archivo3"])))
                    v.AEA_NOMBRE = Convert.ToString(Session["Archivo3"]);
                HyperLinkCertificadoRepa.Text = v.AEA_NOMBRE;
                HyperLinkCertificadoRepa.NavigateUrl = ConfigurationManager.AppSettings["UrlArchivos"] + v.AEA_NOMBRE;
            }

            #endregion

            #region   ART_ENTIDADES_ARTES_ART_GENEROS_ARTISTICOS

            var datosGenerosArtisticos = (from d in contexto.ART_ENTIDADES_ARTES_ART_GENEROS_ARTISTICOs
                                          //join b in contexto.ART_ENTIDAD_UBICACIONs on a.ENT_ID equals b.ENT_ID
                                          //join c in contexto.ART_ENTIDADES_TEATROs on a.ENT_ID equals c.ENT_ID
                                          where d.ENT_ID == decEntiId
                                          select d
                        );

            foreach (var dato in datosGenerosArtisticos)
            {
                contexto.ART_ENTIDADES_ARTES_ART_GENEROS_ARTISTICOs.DeleteOnSubmit(dato);
            }


            foreach (ListItem obj in cblGeneros.Items)
            {
                BusinessRules.ART_ENTIDADES_ARTES_ART_GENEROS_ARTISTICO objArtEntidadesArtesGeneroArtistico = new BusinessRules.ART_ENTIDADES_ARTES_ART_GENEROS_ARTISTICO();
                if (obj.Selected)
                {
                    objArtEntidadesArtesGeneroArtistico.AGA_ID = Convert.ToDecimal(obj.Value);
                    objArtEntidadesArtesGeneroArtistico.ENT_ID = decEntiId;
                    contexto.ART_ENTIDADES_ARTES_ART_GENEROS_ARTISTICOs.InsertOnSubmit(objArtEntidadesArtesGeneroArtistico);
                }

            }


            #endregion

            contexto.SubmitChanges();
        }
        catch (Exception ex)
        { throw ex; }
    }

    #endregion

    #region btnActualizar_Click

    protected void btnActualizar_Click(object sender, EventArgs e)
    {
        //if (HyperLinkCertificado.Text != "" && HyperLinkCertificadoRepa.Text != "" && HyperLinkCertificadoRut.Text != "")
        //{
            ActualizarEntidad();
            ScriptManager.RegisterStartupScript(Page, Page.GetType(), "err_msg1", "alert('La información se guardó exitosamente, para finalizar el proceso haga clic en el botón (Enviar al Ministerio)');", true);
        //}
        //else
          //  ScriptManager.RegisterStartupScript(Page, Page.GetType(), "err_msg1", "alert('Los 3 documentos adjuntos son obligatorios por favor cargar los archivos gracias.');", true);

        //StringBuilder sb = new StringBuilder();
        //sb.Append("<script language='javascript'>");
        //sb.Append("alert('La información se guardó exitosamente');");
        //sb.Append("</script>");
        //ClientScript.RegisterStartupScript(this.GetType(), "test2", sb.ToString());
    }

    #endregion

    #region EstadoCamposFormulario

    private void EstadoCamposFormulario(bool valor)
    {
        txtRazonSocial.Enabled = valor;
        rblTipoIdentificacionEntidad.Enabled = valor;
        txtRut.Enabled = valor;
        rblTipoProductor.Enabled = valor;
        txtDireccion.Enabled = valor;
        ddlDapartamento.Enabled = valor;
        ddlMunicipio.Enabled = valor;
        txtTelefono.Enabled = valor;
        txtCorreoElectronico.Enabled = valor;
        txtPaginaWeb.Enabled = valor;
        cblGeneros.Enabled = valor;
        txtOtrosGeneros.Enabled = valor;
        txtTeatroNombre1.Enabled = valor;
        txtTeatroAforo1.Enabled = valor;
        txtTeatroDireccion1.Enabled = valor;
        ddlTetroDapartamento1.Enabled = valor;
        ddlTeatroMunicipio1.Enabled = valor;
        txtActividadPrincipalProductor.Enabled = valor;
        txtNombresApellidosRepresentanteLegal.Enabled = valor;
        txtNumeroIdentificacionRepresentanteLegal.Enabled = valor;
        rblTipoIdentificacionRepresentanteLegal.Enabled = valor;
        txtFechaRegistro.Enabled = valor;
        txtUsuarioValida.Enabled = valor;
        txtEstado.Enabled = valor;

    }

    #endregion

    #region LimpiarCampos

    private void LimpiarCampos(string strValor)
    {
        txtRazonSocial.Text = strValor;
        txtRut.Text = strValor;
        txtDireccion.Text = strValor;
        ddlDapartamento.SelectedIndex = 0;
        ddlMunicipio.Items.Clear();
        txtTelefono.Text = strValor;
        txtCorreoElectronico.Text = strValor;
        txtPaginaWeb.Text = strValor;
        //        cblGeneros.Enabled = valor;
        txtOtrosGeneros.Text = strValor;
        txtTeatroNombre1.Text = strValor;
        txtTeatroAforo1.Text = strValor;
        txtTeatroDireccion1.Text = strValor;
        ddlTetroDapartamento1.SelectedIndex = 0;
        ddlTeatroMunicipio1.Items.Clear();
        txtActividadPrincipalProductor.Text = strValor;
        txtNombresApellidosRepresentanteLegal.Text = strValor;
        txtNumeroIdentificacionRepresentanteLegal.Text = strValor;
        txtFechaRegistro.Text = strValor;
        txtUsuarioValida.Text = strValor;
        txtEstado.Text = strValor;
        Session["Archivo1"] = null;
        Session["Archivo2"] = null;
        Session["Archivo3"] = null;
        HyperLinkCertificado.Text = "";
        HyperLinkCertificadoRepa.Text = "";
        HyperLinkCertificadoRut.Text = "";


        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "LimpiarCampos", "clearContentsHyperlinkAll()", true);
        

    }

    #endregion

    #region btnEnviar_Click

    protected void btnEnviar_Click(object sender, EventArgs e)
    {
        try
        {
            

            DataClassesArtEntidadesArtesDataContext
                contexto = new DataClassesArtEntidadesArtesDataContext();


            //VERIFICAR SI ADJUNTARON LOS DOCUMENTOS
            var datosDocumentos = (from a in contexto.ART_ENTIDADES_ARTEs
                         join b in contexto.ART_ENTIDADES_ARCHIVOs on a.ENT_ID equals b.ENT_ID
                         where a.ENT_NIT == txtNumeroIdentificacion.Text
                         select new
                         {
                             a.ENT_ID,
                             a.ENT_NOMBRE,
                             a.ENT_NOMBRE_REPRESENTANTE_LEGAL,
                             a.ENT_FECHA_DILIGENCIAMIENTO,
                             a.DOC_ID_ENTIDAD,
                             a.ENT_NIT,
                             a.ENT_RUT,
                             a.ATP_ID,
                             a.ENT_ACTIVIDAD_PRINCIPAL_PRODUCTOR,
                             a.ENT_NUM_DOCUMENTO_REPRESENTANTE,
                             a.DOC_ID_REPRESENTANTE,
                             a.ENT_OTROS_GENEROS,
                             a.ENT_ESTADO,
                             b.AEA_NOMBRE,
                             b.ATA_ID
                         });

            bool boolResultado = true;

            foreach (var v in datosDocumentos)
            {
                if (String.IsNullOrEmpty(v.AEA_NOMBRE))
                    boolResultado = false;
                
            }

            if (boolResultado)
            {
                #region cambia el estado del documento
                var datos = (from a in contexto.ART_ENTIDADES_ARTEs
                             where a.ENT_NIT == txtNumeroIdentificacion.Text
                             select a
                                );
                foreach (var v in datos)
                {
                    v.ENT_ESTADO = 'E';
                    txtNumeroIdentificacion.Text = "";
                    LimpiarCampos("");
                }
                contexto.SubmitChanges();
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "err_msg1", "alert('Su información se envió exitosamente al Ministerio de Cultura, gracias ');", true);
                #endregion
            }
            else
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "err_msg2", "alert('Faltan documentos por adjuntar, por favor adjúntelos y utilice nuevamente la opción ( Guardar ) y la opción ( Enviar al Ministerio ), gracias. ');", true);
            //StringBuilder sb = new StringBuilder();
            //sb.Append("<script language='javascript'>");
            //sb.Append("alert('Su información se envió exitosamente al Ministerio de Cultura, gracias ');");
            //sb.Append("</script>");
            //ClientScript.RegisterStartupScript(this.GetType(), "test", sb.ToString());

        }
        catch (Exception ex)
        { throw ex; }
    }

    #endregion

    #region ddlTetroDapartamento2_SelectedIndexChanged
    protected void ddlTetroDapartamento2_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (ddlTetroDapartamento2.SelectedValue == "") return;
        if (ddlTetroDapartamento2.SelectedValue == "0")
        {
            ddlTeatroMunicipio2.Items.Clear();
            return;
        }
        DataClassesZonasDataContext contexto = new DataClassesZonasDataContext();
        var datos = from a in contexto.BAS_ZONAS_GEOGRAFICAs
                    where object.Equals(a.ZON_PADRE_ID, ddlTetroDapartamento2.SelectedValue)
                    select a;
        if (datos == null) return;
        ddlTeatroMunicipio2.DataSource = datos;
        ddlTeatroMunicipio2.DataTextField = "ZON_NOMBRE";
        ddlTeatroMunicipio2.DataValueField = "ZON_ID";
        ddlTeatroMunicipio2.DataBind();
    }
    #endregion

    #region ddlTetroDapartamento3_SelectedIndexChanged
    protected void ddlTetroDapartamento3_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (ddlTetroDapartamento3.SelectedValue == "") return;
        if (ddlTetroDapartamento3.SelectedValue == "0")
        {
            ddlTeatroMunicipio3.Items.Clear();
            return;
        }
        DataClassesZonasDataContext contexto = new DataClassesZonasDataContext();
        var datos = from a in contexto.BAS_ZONAS_GEOGRAFICAs
                    where object.Equals(a.ZON_PADRE_ID, ddlTetroDapartamento3.SelectedValue)
                    select a;
        if (datos == null) return;
        ddlTeatroMunicipio3.DataSource = datos;
        ddlTeatroMunicipio3.DataTextField = "ZON_NOMBRE";
        ddlTeatroMunicipio3.DataValueField = "ZON_ID";
        ddlTeatroMunicipio3.DataBind();
    }
    #endregion


    #region FileUploadCertificado_UploadedComplete
    protected void FileUploadCertificado_UploadedComplete(object sender, AsyncFileUploadEventArgs e)
    {
        #region Pruebas
        //string filePath = Server.MapPath("Archivos/") + DateTime.Now.ToString().Replace("/", "-").Replace(":", ".") + Path.GetFileName(e.FileName);
        //// Save uploaded file to the file system
        //var ajaxFileUpload = (AjaxFileUpload)sender;
        //ajaxFileUpload.SaveAs(filePath);
        //// Update client with saved image path
        //e.PostedUrl = Page.ResolveUrl(filePath);
        //System.Threading.Thread.Sleep(5000); 
        #endregion

        if (FileUploadCertificado.HasFile && FileUploadCertificado.PostedFile.ContentLength < 4000000)
        {
            string nombreArchivo1 = this.Session.SessionID + Path.GetFileName(e.FileName);
            CertificadoFileUpload = nombreArchivo1;

            HyperLinkCertificado.Attributes.Add("value", nombreArchivo1);
            string strPath = MapPath("~/Archivos/") + nombreArchivo1;
            if (Convert.ToString(Session["Archivo1"]) != "")
                DeleteFile(MapPath("~/Archivos/") + Convert.ToString(Session["Archivo1"]));
            if (!String.IsNullOrEmpty(HyperLinkCertificado.Text))
                DeleteFile(MapPath("~/Archivos/" + HyperLinkCertificado.Text));
            FileUploadCertificado.SaveAs(strPath);
            Session["Archivo1"] = nombreArchivo1;
            HyperLinkCertificado.Text = nombreArchivo1;
            HyperLinkCertificado.NavigateUrl = ConfigurationManager.AppSettings["UrlArchivos"] + nombreArchivo1;

        }

        //esto es para validar la extencion del archivo
        //  Dim fileuploadreceive1 As String = AsyncFileUpload1.PostedFile.FileName
        //Dim uploadedfilesize As Integer = AsyncFileUpload1.PostedFile.ContentLength
        //Dim filename1 As String = Path.GetFileName(fileuploadreceive1)
        //If ((Path.GetExtension(fileuploadreceive1).Contains(".mp3")) And (uploadedfilesize < 5000000)) Then
        //    Dim fileuploadpath1 As String = "E:aspdotnetprojectsasyncfileupload_projectoriginalupload"
        //    AsyncFileUpload1.PostedFile.SaveAs(Path.Combine(fileuploadpath1, filename1))
        //End If

    }
    #endregion



    protected void FileUploadRut_UploadedComplete(object sender, AsyncFileUploadEventArgs e)
    {
        if (FileUploadRut.HasFile && FileUploadRut.PostedFile.ContentLength < 4000000)
        {
            string nombreArchivo1 = this.Session.SessionID + Path.GetFileName(e.FileName);


            HyperLinkCertificadoRut.Attributes.Add("value", nombreArchivo1);
            string strPath = MapPath("~/Archivos/") + nombreArchivo1;
            if (Convert.ToString(Session["Archivo1"]) != "")
                DeleteFile(MapPath("~/Archivos/") + Convert.ToString(Session["Archivo2"]));
            if (!String.IsNullOrEmpty(HyperLinkCertificadoRut.Text))
                DeleteFile(MapPath("~/Archivos/" + HyperLinkCertificadoRut.Text));
            FileUploadRut.SaveAs(strPath);
            Session["Archivo2"] = nombreArchivo1;
            HyperLinkCertificadoRut.Text = nombreArchivo1;
            HyperLinkCertificadoRut.NavigateUrl = ConfigurationManager.AppSettings["UrlArchivos"] + nombreArchivo1;

        }
    }


    #region DeleteFile
    private static void DeleteFile(string strFileName)
    { //Delete file from the server
        if (strFileName.Trim().Length > 0)
        {
            FileInfo fi = new FileInfo(strFileName);
            if (fi.Exists) //if file exists delete it
            {
                fi.Delete();
            }
        }
    }
    #endregion

    protected void FileUploadRepa_UploadedComplete(object sender, AsyncFileUploadEventArgs e)
    {
        if (FileUploadRepa.HasFile && FileUploadRepa.PostedFile.ContentLength < 4000000)
        {
            string nombreArchivo1 = this.Session.SessionID + Path.GetFileName(e.FileName);


            HyperLinkCertificadoRepa.Attributes.Add("value", nombreArchivo1);
            string strPath = MapPath("~/Archivos/") + nombreArchivo1;
            if (Convert.ToString(Session["Archivo3"]) != "")
                DeleteFile(MapPath("~/Archivos/") + Convert.ToString(Session["Archivo3"]));
            if (!String.IsNullOrEmpty(HyperLinkCertificadoRepa.Text))
                DeleteFile(MapPath("~/Archivos/" + HyperLinkCertificadoRepa.Text));
            FileUploadRepa.SaveAs(strPath);
            Session["Archivo3"] = nombreArchivo1;
            HyperLinkCertificadoRepa.Text = nombreArchivo1;
            HyperLinkCertificadoRepa.NavigateUrl = ConfigurationManager.AppSettings["UrlArchivos"] + nombreArchivo1;

        }
    }
    protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
    {
        if (HyperLinkCertificadoRepa.Text != "")
            args.IsValid = true;
        else
            args.IsValid = false;
    }
    protected void Rut_ServerValidate(object source, ServerValidateEventArgs args)
    {
        if (HyperLinkCertificadoRut.Text != "")
            args.IsValid = true;
        else
            args.IsValid = false;
    }

    protected void CustomValidatorRelacionEspec_ServerValidate(object source, ServerValidateEventArgs args)
    {
        if (HyperLinkCertificadoRepa.Text != "")
            args.IsValid = true;
        else
            args.IsValid = false;
    }
    
}
